/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package models;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

/**
 *
 * @author Eduardo
 */
@Entity
@Table(name = "PublicacionXLocal")
@NamedQueries({
    @NamedQuery(name = "Publicacionxlocal.findAll", query = "SELECT p FROM Publicacionxlocal p"),
    @NamedQuery(name = "Publicacionxlocal.findByIdLocal", query = "SELECT p FROM Publicacionxlocal p WHERE p.publicacionxlocalPK.idLocal = :idLocal"),
    @NamedQuery(name = "Publicacionxlocal.findByIdPublicacion", query = "SELECT p FROM Publicacionxlocal p WHERE p.publicacionxlocalPK.idPublicacion = :idPublicacion"),
    @NamedQuery(name = "Publicacionxlocal.findByPrestados", query = "SELECT p FROM Publicacionxlocal p WHERE p.prestados = :prestados"),
    @NamedQuery(name = "Publicacionxlocal.findByReservados", query = "SELECT p FROM Publicacionxlocal p WHERE p.reservados = :reservados")})
public class Publicacionxlocal implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected PublicacionxlocalPK publicacionxlocalPK;
    @Column(name = "Prestados")
    private Integer prestados;
    @Column(name = "Reservados")
    private Integer reservados;
    @JoinColumn(name = "IdLocal", referencedColumnName = "IdLocal", insertable = false, updatable = false)
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Local local;
    @JoinColumn(name = "IdPublicacion", referencedColumnName = "IdPublicacion", insertable = false, updatable = false)
    @ManyToOne(optional = false, fetch = FetchType.LAZY)
    private Publicacion publicacion;

    public Publicacionxlocal() {
    }

    public Publicacionxlocal(PublicacionxlocalPK publicacionxlocalPK) {
        this.publicacionxlocalPK = publicacionxlocalPK;
    }

    public Publicacionxlocal(int idLocal, String idPublicacion) {
        this.publicacionxlocalPK = new PublicacionxlocalPK(idLocal, idPublicacion);
    }

    public PublicacionxlocalPK getPublicacionxlocalPK() {
        return publicacionxlocalPK;
    }

    public void setPublicacionxlocalPK(PublicacionxlocalPK publicacionxlocalPK) {
        this.publicacionxlocalPK = publicacionxlocalPK;
    }

    public Integer getPrestados() {
        return prestados;
    }

    public void setPrestados(Integer prestados) {
        this.prestados = prestados;
    }

    public Integer getReservados() {
        return reservados;
    }

    public void setReservados(Integer reservados) {
        this.reservados = reservados;
    }

    public Local getLocal() {
        return local;
    }

    public void setLocal(Local local) {
        this.local = local;
    }

    public Publicacion getPublicacion() {
        return publicacion;
    }

    public void setPublicacion(Publicacion publicacion) {
        this.publicacion = publicacion;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (publicacionxlocalPK != null ? publicacionxlocalPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Publicacionxlocal)) {
            return false;
        }
        Publicacionxlocal other = (Publicacionxlocal) object;
        if ((this.publicacionxlocalPK == null && other.publicacionxlocalPK != null) || (this.publicacionxlocalPK != null && !this.publicacionxlocalPK.equals(other.publicacionxlocalPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "models.Publicacionxlocal[ publicacionxlocalPK=" + publicacionxlocalPK + " ]";
    }
    
}
